#include "ModuleFPS.h"

void ModuleFPS::init(QCVModuleHandlerInterface * parent)
{
	this->parent=parent;
	win=new QWidget();
  layout=new QVBoxLayout(win);
	l_fps=new QLabel(win);
	layout->addWidget(l_fps);
	clock_previous=0;
	

	fps.create(1,1);
	fps(0,0)=0;
}
////////////////////////////////////////////////////////////////////////////////
void ModuleFPS::free()
{
	delete win;
}
////////////////////////////////////////////////////////////////////////////////
cv::Mat & ModuleFPS::process()
{
	l_fps->setText(QString::number(fps(0,0)));
	return fps;
}
////////////////////////////////////////////////////////////////////////////////
void ModuleFPS::setInput(int n,const cv::Mat & m)
{
	if(n==0)
	{	
		fps(0,0)=(cvGetTickFrequency()*1000000.0)/((float)cvGetTickCount()-clock_previous);
		clock_previous=(float)cvGetTickCount();
	}
}

QCVModuleInterface * ModuleFPS::clone()
{
	return new ModuleFPS;
}

////////////////////////////////////////////////////////////////////////////////
QWidget* ModuleFPS::widget()
{
	return win;
}
////////////////////////////////////////////////////////////////////////////////
QString ModuleFPS::getName()
{
	return tr("Images par secondes");
}
////////////////////////////////////////////////////////////////////////////////
int ModuleFPS::nbInputs()
{
	return 1;
}
////////////////////////////////////////////////////////////////////////////////
bool ModuleFPS::setParams(QString params)
{	
	if(params==tr("no params"))
	{
		return true;
	}
	else
	{
		return false;
	}	
}
////////////////////////////////////////////////////////////////////////////////
QString ModuleFPS::getParams()
{
	return tr("no params");
}
////////////////////////////////////////////////////////////////////////////////
QString ModuleFPS::help(int id)
{
	if(id==-2)
	{
		return tr("Permet de calculer un nombre d'images par seconde");
	}
	else if(id==-1)
	{
		return tr("number");
	}
	else if(id==0)
	{
		return tr("something");
	}
	else
	{
		return tr("erreur");
	}
}
////////////////////////////////////////////////////////////////////////////////
Q_EXPORT_PLUGIN2(ModuleFPS_plugin,ModuleFPS);  
